package com.hy.common.log.eventbus;

import cn.hutool.core.util.ObjectUtil;

import com.google.common.eventbus.AllowConcurrentEvents;
import com.google.common.eventbus.Subscribe;

import com.hy.common.log.dto.SysOpLogReqDTO;
import com.hy.entity.pojo.SysOpLogReq;
import com.hy.mapper.SysOpLogReqMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.util.EventListener;


/**
 * 系统操作日志异步操作监听
 *
 */
@Slf4j
@Component
public class SysOpLogEventBusListener implements EventListener {


    @Resource
    private SysOpLogReqMapper reqMapper;
    @Subscribe
    @AllowConcurrentEvents
    public void listener(SysOpLogEvent sysOpLogEvent){
        SysOpLogReqDTO sysOpLogReqDTO = sysOpLogEvent.getSysOpLogReqDTO();
        if(ObjectUtil.isNotNull(sysOpLogReqDTO)){
            log.info("保存日志到数据库：{}"+ sysOpLogReqDTO);
            SysOpLogReq req=new SysOpLogReq();
            BeanUtils.copyProperties(sysOpLogReqDTO,req);
            reqMapper.insert(req);
        }
    }
}
